package day5;

import java.util.Scanner;

public class Demo8 {

        //从键盘录入两个数 进行 位运算
        public static void main(String[] args) {
//2.实例化对象
            Scanner sc = new Scanner(System.in);
            System.out.println("input two num: ");
// 10 0 0(23) 0000 1010
            int n1 = sc.nextInt();
// 3 0 0(23) 0000 0011
            int n2 = sc.nextInt();
//&: 1&1 == 1 0&? == 0
// 0 0(23) 0000 1010
//& 0 0(23) 0000 0011
// 0 0(23) 0000 0010 ==> 2
            int value = n1 & n2;
            System.out.println("n1 & n2: " + value);
// 0 0(23) 0000 1010
//| 0 0(23) 0000 0011
// 0 0(23) 0000 1011 ==> 11
            value = n1 | n2;
            System.out.println("n1 | n2: " + value);
// 0 0(23) 0000 1010
//^ 0 0(23) 0000 0011
// 0 0(23) 0000 1001 ==> 9
            value = n1 ^ n2;
            System.out.println("n1 ^ n2: " + value);
// 0000 1010
            byte num = 10;
//~ 0000 1010
// 1111 0101 ==> -?
// 原码 <-> 反码 <-> 补码
// 补: 1111 0101
// 反：补码-1
// 1111 0100
// 原: 反码保留符号位，其他位取反
// 1000 1011
// 结果： -11
            value = ~num;
            System.out.println("~num: " + value);
        }
    }

